﻿using QuanLyThuVien.Core;
using QuanLyThuVien.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace QuanLyThuVien.DataAccess
{
    class ThongtinmuontraAccess
    {
        dbConnection db = new dbConnection();

        //---- Tìm kiếm theo mã thông tin mượn trả
        public DataView timkiemMattmt(string Ma_MT)
        {
            DataView dataView = layToanboThongtinmuontra().DefaultView;
            dataView.RowFilter = string.Format("Ma_MT like '%{0}%'", Ma_MT);
            return dataView;
        }

        //---- Tìm kiếm theo mã thẻ
        public DataView timkiemMathe(string Ma_the)
        {
            DataView dataView = layToanboThongtinmuontra().DefaultView;
            dataView.RowFilter = string.Format("Ma_the like '%{0}%'", Ma_the);
            return dataView;
        }

        //---- Tìm kiếm theo mã sách
        public DataView timkiemMasach(string Ma_sach)
        {
            DataView dataView = layToanboThongtinmuontra().DefaultView;
            dataView.RowFilter = string.Format("Ma_sach like '%{0}%'", Ma_sach);
            return dataView;
        }

        //----- Lấy toàn bộ thông tin mượn trả;
        public DataTable layToanboThongtinmuontra()
        {
            return db.executeSelectProcedureQueryNonParameter("selecte_muontra");
        }
        //---- Tim Thông tin mượn trả theo mã va trả về một bảng
        public DataTable timTtmuontratheoma(string ttmt)
        {
            SqlParameter[] listParam = new SqlParameter[1];
            listParam[0] = new SqlParameter("Ma_MT", SqlDbType.Char, 10);
            listParam[0].Value = ttmt;
            return db.executeSelectProcedureQuery("timkiem_muontra", listParam);
        }
        //---- Thêm Thông tin mượn trả
        public int themThongtinmuontra(Thongtinmuontra ttmt)
        {

            if (timTtmuontratheoma(ttmt.Ma_MT1).Rows.Count > 0) return 0;
            else
            {
                SqlParameter[] listParam = new SqlParameter[5];
                SqlParameter mattmt = new SqlParameter("@Ma_MT", SqlDbType.Char, 10);
                SqlParameter mathe = new SqlParameter("@Ma_the", SqlDbType.Char, 10);
                SqlParameter masach = new SqlParameter("@Ma_sach", SqlDbType.Char, 10);
                mattmt.Value = ttmt.Ma_MT1;
                mathe.Value = ttmt.Ma_the1;
                masach.Value = ttmt.Ma_sach1;
                listParam[0] = mattmt;
                listParam[1] = new SqlParameter("@Ngay_muon", string.Format("{0:yyyy-MM-dd}", ttmt.Ngay_muon1));
                listParam[2] = new SqlParameter("@Ngay_hethan",string.Format("{0:yyyy-MM-dd}", ttmt.Ngay_hethan1));
                listParam[3] = mathe;
                listParam[4] = masach;
  
                db.executeInsertProcedureQuery("insert_muontra", listParam);
                return 1;
            }
        }
        //---- Sửa Thông tin mượn trả
        public int suaThongtinmuontra(Thongtinmuontra ttmt)
        {

            if (timTtmuontratheoma(ttmt.Ma_MT1).Rows.Count < 0) return 0;
            else
            {
                SqlParameter[] listParam = new SqlParameter[5];
                SqlParameter mattmt = new SqlParameter("@Ma_MT", SqlDbType.Char, 10);
                SqlParameter mathe = new SqlParameter("@Ma_the", SqlDbType.Char, 10);
                SqlParameter masach = new SqlParameter("@Ma_sach", SqlDbType.Char, 10);
                mattmt.Value = ttmt.Ma_MT1;
                mathe.Value = ttmt.Ma_the1;
                masach.Value = ttmt.Ma_sach1;
                listParam[0] = mattmt;
                listParam[1] = new SqlParameter("@Ngay_muon", string.Format("{0:yyyy-MM-dd}", ttmt.Ngay_muon1));
                listParam[2] = new SqlParameter("@Ngay_hethan", string.Format("{0:yyyy-MM-dd}", ttmt.Ngay_hethan1));
                listParam[3] = mathe;
                listParam[4] = masach;
                db.executeUpdateProcedureQuery("update_muontra", listParam);
                return 1;
            }
        }
        //---- Xóa Thông tin mượn trả
        public int xoaThongtinmuontra(Thongtinmuontra ttmt)
        {

            if (timTtmuontratheoma(ttmt.Ma_MT1) == null) return 0;
            else
            {
                SqlParameter[] listParam = new SqlParameter[1];
                listParam[0] = new SqlParameter("@Ma_MT", ttmt.Ma_MT1);
                db.executeDeleteProcedureQuery("delete_muontra", listParam);
                return 1;
            }
        }
    }
}
